Your rival is the strongest trainer in the game (apart from you!) but with the right moves and pokemon, he can be a breeze. The second time around he has a Kingdra which only has a weakness to dragon type moves. His Dragonite's will be easy to dismiss with a level 50+ Water or Ice pokemon with Ice Beam.
Lance's Aerodactyl is a rock/flying type and while it has a big weakness to Ice, Surf does more damage because of it's slightly lower Sp. While Thunder is good, Thunderbolt is more reliable because he may not use Rain Dance. The first pokemon he sends out is Gyarados who has a massive weakness to electricity and also happens to know Rain Dance. His dragon pokemon only have 2 weaknesses (dragon and ice) and they know a variety of moves that will annoy and destroy. A level 50+ psychic pokemon (preferably Alakazam) would be able to make this battle quick and easy. The Red/Blue/Yellow tactic of using ground types on the ghost pokemon is gone because of their characteristic Levitate but you can still use Psychic attacks to do maximum damage to all her pokemon. A high attack pokemon with fly should be able to take out his Machamp, Hitmonlee and Hitmonchan but be careful, Machamp knows Rock Slide! Agatha is a ghost/poison trainer. Use water type moves to get rid of them in one go.