Lance is the leader of the Elite Four and the king of Dragon-types. But he only has one actual Dragon-type in his team. Since that’s the only Dragon-type in Kanto, you see. The rest of his Pokémon are simply Dragon-like Pokémon. As such, it’s not useful to rely solely on a Dragon counter.
To begin with, Lance sends out Seadra, an evolved Horsea. This is a pure Water-type, unlike Kingdra, its yet-to-be discovered evolution. It can use STAB Hydro Pump, plus Dragon Pulse and Hyper Beam. Grass-types are ideal, but Electric can work as well.
Aerodactyl is a Rock and Flying-type. So it’s weak to Water, Electric, Rock, Ice and Steel. This one can use STAB Rock Slide, Earthquake to punish Electric, Rock and Steel-types, and Hyper Beam. That leaves Water as the safest Type to use.
Gyarados is an evolved Magikarp that’s gained the Flying-type. It’s weak to Rock and exceptionally weak to Electric. Lance’s Gyarados can use Waterfall for STAB, Iron Tail to hurt Fairies, and good old Hyper Beam. If it wasn’t obvious, Electric-types are the way to go.
Meanwhile, Charizard is a fully evolved Charmander that’s now a Flying-type. It’s weak to Water and Electric, and doubly weak to Rock. This one can use STAB Air Slash, Dragon Pulse, and guess what? Yeah, Hyper Beam. Rock-types are perfect, but Water and Electric are fine too.
Finally, Lance’s strongest Pokémon is his trusty Dragonite. This dragon is weak to Dragon and Fairy, and exceptionally weak to Ice. It can use Outrage to deal heavy STAB damage, but inflicting confusion on itself. Also Fire Punch to hurt Ice-types that aren’t Water. And Hyper Beam. Ice is generally the best choice or Fairy.