Carbon-counting derivation:
Ribulose 1,5-bisphosphate (RuBP) is a 5-carbon sugar. When Rubisco fixes one molecule of CO2 onto RuBP, a transient 6-carbon intermediate forms. This unstable intermediate immediately hydrolyses into two smaller molecules. Counting atoms confirms the products must each contain 3 carbons, since the 6-carbon intermediate splits evenly in half, which corresponds to two molecules of 3-phosphoglycerate rather than a 3-carbon sugar-phosphate such as glyceraldehyde 3-phosphate, which only forms later after a reduction step, or any 2-carbon or 4-carbon species.
Hence, the split product is 3-phosphoglycerate.