Cipolla (1902), as shown in Dusart (1999) page 12 and other places. To term m = 2:
$P_n \approx n \Big(\log n + \log\log n - 1 + \frac{\log\log n - 2}{\log n} - \frac{\log\log n \log\log n - 6\log\log n + 11}{2\log n\log n}\Big)$
Empirically we can add in a third order approximation to get slightly better results. This is a small factor varying from 10 to -0.025 times $(\log\log n / \log n)^3n$ depending on the value of n.
While more work to implement, we can do better with $R^{-1}(n)$ --- the inverse of Riemann's R function.
$\begin{align}
n & = 30,000\\
p_{n} & = 350,377\\
P(n) & = 351,097 \ \ (+720) \\
C(n) & = 349,883 \ \ (-494)\\
C^*(n) & = 350,613 \ \ (+236)\\
R^{-1}(n) & = 350,517 \ \ (+140)\\
\end{align}$
$\begin{align}
n & = 20,000,000\\
p_{n} & = 373,587,883\\
P(n) & = 379,994,996 \ \ (+6407113) \\
C(n) & = 373,571,901 \ \ (-15982)\\
C^*(n) & = 373,571,901 \ \ (-15982)\\
R^{-1}(n) & = 373,578,699 \ \ (-9184)\\
\end{align}$
$\begin{align}
n & = 2,000,000,000\\
p_{n} & = 47,055,833,459\\
P(n) & = 48,337,784,789\ \ (+1281951330)\\
C(n) & = 47,056,149,503 \ \ (+316044)\\
C^*(n) & = 47,056,003,062 \ \ (+169603)\\
R^{-1}(n) & = 47,055,819,481 \ \ (-13978)\\
\end{align}$
The approximation you give doesn't do great even at values like 30,000. It does very poorly when we get into semi-large values.
If you want something specifically tuned for very small values (e.g. under 10k), then I suppose we'd want to look at some other methods. On the other hand, we could just use a table, an interpolated sparse table, or just sieve them since this is a trivial size.
The paper "The n-th Prime Asymptotically" (2012) gives a bit more history for this approximation, then goes on to construct approximations to ${\rm li}^{-1}(n)$. As programmers we can just use a binary search on ${\rm li}()$. This will give a very good approximation for $p_n$ of course. $R^{-1}(n)$ is better however, just like $R(n)$ is better than ${\rm li}(n)$ for approximating the prime count.