Yeah, you can still buy them, depending on location, but they're expensive and GameStop is US only. In the EU you can get them from German Amazon, but it's like €50 for HeartGold, which is outrageous for such an old game (Omega Ruby costs €35 by comparison, Alpha Sapphire is €40, for new). And Soul Silver is even more expensive, €57 at Amazon Germany. And that's only used. If you want a new one you're looking at €220 for Soul Silver at Amazon Germany or €240 for Heart Gold.
You can also get them at Amazon UK. HeartGold is 62 pounds there for a new one, or 53 pounds for a used one. SoulSilver is 147 pounds for a new one or 52 pounds for a used one. And Alpha Sapphire costs 27 pounds new here, Omega Ruby is 29.50 pounds for new.