Now each punch has it's benefits in terms of taking out notable threats.
Fire Punch only niche use is for bulky bug/steels like Forretress and Scizor. Anything else notable it hits superffectively like Amoonguss is hit harder by Return
Thunder Punch is useful for Gyarados and to a lesser extent, Slowbro and Azumarill, but again, Return hit's the latter two harder anyway.
Ice Punch hits many bulky things that resist fighting extremely hard, namely Gliscor, Landorus-T, Dragonite and if you're on cart Mega Salamence. There's also many other strong Pokemon with a significant weakness to ice, such as Garchomp and Mega Sceptile, so packing Ice Punch is handy. Additionally, Ice Punch can handle bulky grass types (like Amoonguss) as well as Fire Punch can, and can handle most flying types as well as Thunder Punch can.
Ice Punch is the most useful, hitting multiple powerful threats hard, Thunderpunch is there if Gyarados really gives you trouble, and Fire Punch is only useful if you really hate Forretress.