This really is a matter of taste. The issue is that you are considering p a density function. I see it as a distribution where different things can be done with it, including, but not limited to, calculating the density function or generating random numbers from this distribution.
Now, if you really want to use as a density function, you could resort to type piracy and define the function yourself:
(p::Distribution)(x) = pdf(p, x)
And now,
julia> p = Beta(2,3)
Beta{Float64}(α=2.0, β=3.0)
julia> p.(x) == pdf.(p, x)
true
But I wouldn’t recommend it. It will work with the simpler distributions.