Ha ha, what? That's their solution? To make you get another API key so you can query for 2x the SKUs? What happens when you need 9? 10? 20? Is the API so expensive for them to run that they can, really, only handle 3 at a time?
And then, why not simply run multiple requests? You already have that there - just use the same key. Is there also time-based throttling on what you can do?
This is so weird.
That aside, work it like this:
Using one API key, get yourself a loop that can do all the SKUs. So basically what you have there (if it didn't have the key stuff). That's the basic functionality you need here, and you can think of the "swap between API keys" as a small layer to be added on top of the functionality.
Then, set up an array of keys - because distinct variables makes this awkward to work with, and even more awkward to maintain if/when you discover that you need to add a third key.
To pick the key to use, think of it in the general sense of "I have multiple keys and I want to cycle through them". Because a mindset of a fixed number of keys (especially 2) will get you stuck into a narrow line of thinking (like needing to alternate between them).
"Cycling" works simply and doesn't need to be adjusted based on the number of keys: cycling is picking key 1, then key 2, then key 3... then when you're on the last key, you go back to the beginning.
Cycling requires a counter, of course, but tou can get one from the foreach/array_chunk and that will count up automatically without you having to increment it yourself.
Then take your counter, add modulus based on the number of keys, grab that key, and stick it into your API.
const MAX_SKUS_PER_REQUEST = 3;
$keys = ["one", "two", "three", ...];
foreach (array_chunk($sku_numbers, MAX_SKUS_PER_REQUEST) as $i => $chunk) {
$key = $keys[$i % count($keys)];
...
}