There are some notation issues involved in this. Posterior predictive checks can be used to mean both “comparison of posterior predictive (and pushforward quantities) to observed data” and the most common type of posterior predictive checks (using here the first definition). This first meaning is also often called “model checking” or “model criticism”. All plots in Example gallery — ArviZ dev documentation are about model checking, but only the middle row uses plot_ppc. The plot_ppc funcion, as you have probably guessed by now uses the 2nd meaning, it compares raw samples from posterior predictive and observed data.
AFAIK, it isn’t possible yet to get the two colors automatically with ArviZ, but you want to use plot_bpv. Something like:
az.plot_bpv(idata, kind="t_stat", t_stat=np.max)
You will get a plot similar to the last example shown in the docstring page I shared above for plot_bpv, the distribution of the maxima for each sample will be plotted and the integral of the orange part will be written down in the legend