There should be no reason you can't use proto3 along with proto2 just fine.
The underlying serialization is compatible, one major difference if you
care about encoding options is that proto3 has packed fields on by default
for repeated, but this can also be manually enabled for repeated fields in
I work at Google and I can tell you that proto2 and proto3 freely
interoperate. That is, they can reference symbols across versions and
generate code that works well together. It is entirely reasonable for a
proto2 message to reference a proto3 enum or message, and vice versa, with
the exception