Quoted By:
Blaziken/Swampert
Camerupt/Milotic(or)Walrein(or)Wailord(or)Ludicolo
Manetric
Altaria(or)Salamence
Dusclops
Hariyama/Shiftry/Zangoose/Slaking
In-game is easy regardless, though I run through gen 3 so many times the amount of effective bros ingame is amazing.
First off, despite Swampert's dominance in attack/sp stats, you can opt for one of the many Hoenn water pokemon and their dual-typings for further coverage.
Either go full Hoenn or go home
Crawdaunt/Ludicolo/Walrein/Wailord/Milotic all provide amazing stat pools as well as plenty of STAB.
Should Blaziken not be preferred, despite it's beastliness to Bulk Up for OHKO doublekick/quick attacks - You can opt for a fire type, though they aren't necessary, regardless, either Camerupt or Torkoal can work well, both have the ability to stall somewhat too, Torkoal especially.
Manetric is a must have for an Elec sweeper, essentially the Jolteon of your party, TWAVE, Bite, TBOLT give him use in catching and battling, never outsped either
These sweepers can be replaced by several things in fact. Gardevoir/Solrock/Lunatone(Not in EMERALD) Grumpig etc all provide good solid stats and TM usage for Psychic typings
If you MUST have a Dragon, seriously, don't bother training a Flygon, he frankly sucks in Gen 3 and often eats up your Earthquake TM in place of inferior stats to Salamence. Having said that, Mence is very late to acquire and a bore to level to 55. Altaria is an often overlooked bro-tier pokemon, in Gen 3 it thrives with multi-purpose movsets, it can toxic, perish song, rest - or sweep with Drag.Dance and other moves. It's SP.ATK rounds out too so it benefits from flamethrower and other moves.
The two Ghosts listed are also retardedly strong. Dusclops, despite the low HP, becomes virtually unbeatable with will-o-wisp and rest stalling+pain split, a STAB shadow ball TM always helps do dish some damage, though he can be taught ice beam etc too.