Heavy destroys pyro in cqc, which is supposed to be the pyro's main element. Soldier can deal with pyros with a shotgun and good trigger discipline, and demomen have the Loose Cannon, one of the strongest anti-pyro projectile weapons in the game.
Heavy may be able to shred the pyro in cqc, but in general, it depends on the type of situation, I find that rarely pyros will actually focus on going face-face with heavies, I know for sure I would keep it to a corner based combat and M1 them and M2 a second or two after lighting him on fire around a corner, that's mainly because the way I play rarely involves getting Face-Face with a heavy as pyro.
If the Pyro and Heavy were to go up to a face-face 1v1 with no objects in the way, the heavy would definitely destroy the pyro.
When it comes to the soldier, I'll mostly just M1 spam him with my flame thrower for a few seconds and scorch shot him, this would supposedly end in a draw with neither really winning the face-face matchup.
(I never really see a Soldier win the afterburn of a couple of seconds of flames + a Scorch Shot or a flare gunshot. Not without a medic pocket or sitting near a health pack anyway.)
Put pyro in without the scorch shot, or no flare gun with good aim, then yes, the soldier would win.
Loose Cannon, I really cannot argue with as that is extremely hard to reflect, which is particularly why I keep my distance when fighting them.
In general, from what I've gathered from your opinions/tips, there isn't really any "OP" class as they each have their own areas of expertise while also having counters of their own, as well as taking advantage of the map to each of their advantage.
(I also take back my comment of the strongest, but pyro can definitely fight well in most areas, like the others.)