The simplest, but most time-intensive, is to train your team until it reaches levels so high above your opponent's that even a move hitting two weaknesses at once does minimal damage. Of course, the stronger your opponent, the less efficient this becomes.
[Can't really outlevel a Pokémon that's reached 100, after all.]
Another option is to haunt various stores in search of TMs that can counter those weaknesses. For example, as a Water- and Ground-type, Quagsire is weak against Grass users twice over. However, by purchasing and teaching it an Ice-type TM such as Ice Beam, you can give any Grass-type you face a nasty surprise. Of course, that becomes very expensive very quickly, especially if your team is large.
Video;
[Can't really outlevel a Pokémon that's reached 100, after all.]
Another option is to haunt various stores in search of TMs that can counter those weaknesses. For example, as a Water- and Ground-type, Quagsire is weak against Grass users twice over. However, by purchasing and teaching it an Ice-type TM such as Ice Beam, you can give any Grass-type you face a nasty surprise. Of course, that becomes very expensive very quickly, especially if your team is large.