Trade with other people who have heart gold or soul silver.
Chat with our AI personalities
You can only get one. If you use the action replay, though, then you can either use the wild modifier code or catch trainer Pokemon code to get all three of them.
It is not possible to get all three starters in Pokemon LeafGreen without trading. This was an intended mechanic to encourage interaction between players.
You don't not unless you trade or cheat
There's only one way to get all 3 starters in Pokemon HeartGold/SoulSilver, but you will need to have 2 DS's and 2 games. You start with a Pokemon and trade it on your other game on your other DS. You start a new game and then do the same with your other 2 and then trade them back. You then have all 3 starters.
By trading the other starters with other players of Diamond or Pearl.