Pass Color to a function without using a specific Adafruit_NeoPixel
Looking at the library at https://github.com/adafruit/Adafruit_NeoPixel/blob/master/Adafruit_NeoPixel.h, you can see that the Color method is static (see line 307):
static uint32_t   Color(uint8_t r, uint8_t g, uint8_t b) {
  return ((uint32_t)r &lt;&lt; 16) | ((uint32_t)g &lt;&lt;  8) | b;

This means instead of
strip[0].Color( 0, 255, 0)

You can use:
Adafruit_NeoPixel::Color( 0, 255, 0)

Your call to everyother will be:
everyother(Adafruit_NeoPixel::Color( 0, 255, 0),
           Adafruit_NeoPixel::Color( 255, 0, 0), 
           500);

And since everyother is now not a good name, you can think of a better one, e.g. fillLeds (always start a method name with a verb).
Offtopic:

A subroutine is barely used anymore, I think the last time I heard it, is from the Basic programming language
A function is now used instead
But when a function is inside a class, it's not called a function, but called method.