Soldiers only have four rockets before they have to reload, and any Pryo worth their salt knows that counting to four is important when going up against a soldier. I'm not saying it's a walk in the park, because one rocket on your feet and you're in big trouble. But soldiers are very vulnerable when reloading and not nearly fast enough to run away from a pyro. In general, a pryo can also close and torch a soldier if he's got his shotgun out. Wait for the opportunity, torch the soldier, back off and finish with the shotgun. If you run up to a soldier and expect to kill him with with the flamethrower faster than he can kill you with his rockets, you're going to be very disappointed. And as someone who plays soldier a lot as well, I can say that when you catch on fire, if you don't see a pyro, then he's probably right behind you. So as a pyro, even if you have complete surprise on a soldier or demo, you need to start circling as soon as you torch them.
People really seem not to understand the point of the pyro because they believe the be-all-and-end-all of all classes except the medic is to get kills upon kills. That's really not the point of a pyro. The pyro's DoT makes everyone he torches fall back for health because they can't sustain against the pryo's teammates while on fire. If you take two soldiers and a pyro up against three soldiers, in a fair fight, I would bet on the team with the pyro. In a way, the pyro is the exact opposite of the medic. The medic heals over time and the pyro harms over time. His role is to support offenses and disrupt attackers because people WILL get out of his way and/or focus on him. A good team knows that the best defense against an uber pyro is to run past him, not away.
In comp play, though, the pyro doesn't really have a role because he doesn't reward high twitchiness like a soldier, scout or demoman will. Since those are the players that tend towards comp play, and because the teams are generally smaller than regular pub play, he's kinda left out of the comp scene. I don't think that means there's anything wrong with him or that he needs 'fixing.' If he really is the weakest class, I don't care. He's just too much fun to play!