It's worth looking at Pulumi features to generate K8s YAML as a side effect of executing the Pulumi app code i.e. don't call K8s API directly -
https://www.pulumi.com/blog/kubernetes-yaml-generation/
By doing this, the interface between ArgoCD and Pulumi remains the Git repo containing YAML, so it works well with GitOps.
One benefit of using this 'fully instantiated YAML' model (relative to Kustomize files) is that you can use normal Pulumi code to parameterise everything, like with direct API calls, but still see exactly what should be on the cluster in YAML terms.
If you want to use third-party Helm charts from within Pulumi that's a different problem - often it's better to use those directly from upstream rather than try to convert them into Pulumi or Kustomize.