DiffPO: A causal diffusion model for learning distributions of potential outcomes