Transferring Pokémon between games is a bit of a time honoured tradition at this point, with many of the games allowing you to bus in types of 'mon that should never have been there in the first place.
Swapping Pokémon with friends in the playground to get hold of that shiny you've been chasing for months has always been a big part of the games since their earliest days, but its also possible to swap between whole generations if you have the right equipment.
The main problem that occurs is that Generation 3 was a bit of a reset for the series and developer Game Freak didn't make it particularly easy to transfer your favourite Pokémon from the first two generations upwards.
As pointed out over on Reddit, you need to two GameBoy Colors, a flash cartridge called an Everdrive and a software