If I understand your question correctly, then yes, I believe a single union should do it. Well, it will generate AC, BC, and ABC, anyway. You will also have the remainder of A, B, and C, as separate polygons. But you can go back in and delete those from the resulting output.
If you were to run an intersect, I believe the only output you would get would be ABC.
ms