Is there a limit to how many variables I can particle.subscribe to?

if rate limits are an issue (i.e. too many publishes at once) you can simply combine your data into a single publish.. then parse it at the receiving end.

If I were you I would send all four variables wrapped in an easy-to-parse string:

char publishString[255] = "";  // yes you can send up to 255 bytes
snprintf(publishString, sizeof(publishString), "%.2f~%.1f~%d~%.1f~", temp, humidity, pressure, dewPt);
Particle.publish("MyData", publishString);

kind-of-thing...

now your data looks like this:

72.35~34.1~10345~45.2~

easy to parse on the receiving end using strtok()!