Venussaur - Best starter, acording to game freak, due being very effective against the two first gym leaders and resistant against the third.
Raichu - Due to increased number of water and flying Pokemons in this region, especially, early in game, like pidgey, zubat, spearow, etc, a eletric type that can be aquired early in is a good option, also, he is the electric type of that region that can learn more different moves, like brick break, dig, etc.
Pidgeot - Very round stats, easy to raise, usefull, especially for the ones who doens't choose the fire starter, due to being very effective against grass, insect, fight that are very common in the early and end game.
Graveler, rhydon or kabutops - Geodude is the mosy easy ground/rock type to raise, and learn the most usefull moves of both types, that can be very usefful early and in end game. Especially against the third gym. I advise to use graveller early in and later trade for a golem or rhydon and kabutops if you can't trade.
Arcanine - Along with charizard and ninetales, he is the standart choice for a fire type in kanto, he also has very high stats.
Lapras - Have a wide movepool, good stats for both attack and defense, is the best choice to the last member of the elite for, due to have a STAB of ice, also being mix with water, who is a very usefull type.
Venussaur can be used for both ofense or defense, but I belive that he will be best suit for defense in that generation especially later on, but he also would do good in ofense. For defense, and damage over time:
Razor leaf/solar bean
Double team/thunder wave
Pidgeot: He is very ease to raise and having both attack and spl attack moves almost in identical stats, almost any move would do good.
Wing attack/ aerial ace
Thief (for dealing with ghost and pshyc types)
Steel wing (for conter rock and ice, Who is a threat)
horn drill/ fire blast, hyper bean, thuder (The last 3 ones for this spot doesn't benefit for his best stat of ofense, but could come in handy sometimes as a backup move for a lower spl def Pokemon foe, but the best choice is still horn drill)
slash/surf (Since in gen 3 all water moves belonge to spl atk category, is best use surf, but he doesn't benefit for his higher stat, attack, so if you want to benefit from this, choose slash, if you wanna a backup move choose surf.)
Flametrower/fire blast (fire blast only if you use most your flying type to dealing with grass and insects, then the fire type would be the support would bring "extra firepower" for backup, but if you will use him as much as the flying, then keep flametrower as standarth move.
Surf/Hydro pump (A similiar case for the fire blast of arcanine, use hydro pump only if you use your grass type more than your water to deal to rock and ground, then use the hydro bump as the backup powerfull move, if you use urou water as muach as your grass to deal against thoose types then keep surf.)
fly: Since fly has only 70 base power in that generation, don't use it on your flying type or charizard, if you choose one, best use wing attack or aerial ace, since has base power 60 and attack in one turn instead of two, who could take your precious time, and many other chances, who in a fight is crítical. Keep this move for an utility Pokemon, also know as HM especialist, to travel to one city to another, then put it back on the pc again. Don't use this move as a battle move in that generation.
Surf and Watterfall: Same case as the fly, but with a few exceptions. Use one of thoose moves only if you don't plan to use hydropump later on, also put only one of them, never both. Only one is enought, their primary objective is to be used in a HM especialist to climb watterfalls and traverse the water, nothing more. Use only one of them for battle if is the case, but never put two, their are suited for the HM especialist, who you will teach him this move to use in such ocasion and then put the Pokemon on the PC box, and only use it again when needed outside of battle, same as the user of the move fly.
Rock smach, strenght, cut: Same as the other ones mentioned above, put it on a HM especialist to use it only when the time needed outside of a battle.
For HM especialist Pokemon, almost anything works.
For fly = Spearow, fearow, pidgey
For watterfall and surf = goldeen, poliwrill, horsea, etc.
For cut, rock smash, strenght early on = Rattata, sandsherew
For cut, rock smash, strenght later on = Raticate, krabby
For surf later on = Krabby
Krabby is one of the best HM especialist, he can knows:
I would like if you undertand that, and choose this as the best answer since many people here are doing amateur answers, some are even put both surf and watterfall in the same Pokemon used to battle. Thanks!!