TIL puto was a homophobic slur. The slur I usually hear against gay people is maricon, but maybe it's just dialectic differences.
Where I live, it is usually maricón. Although Panamanians also use Pato or Cueco. I have also seen Perra used on men too, although I don't know if that means gay or something else.
And it will be quite hard (I think actually impossible in the upcoming years) to have people here in Latin America stop using those words. These countries are quite conservative, quite religious. They really hate people from the LGBT Community.