Depending on whether the parent process is observed or not. If it is observed, then you can write down the child process nested under each parent process:
for parent in ['A', 'B', 'C']:
pm.Multinomial('child', n, p=p[parent], observed=...)
If the parent is not observed, then some thing like a latent dirichlet allocation model should work. You can have a look at a recent discussion: Naive Bayes model with PyMC3