Small p with dot below
The optional argument to \stackunder
specifies the gap.
\documentclass{article}
\usepackage{stackengine}
\begin{document}
ha\stackunder[-1.5pt]{p}{.}\stackunder[0pt]{p}{.}y
\end{document}
There's a COMBINING DOT BELOW (U+0323) character, but it does not look really good with EB Garamond (it works with H, but not P). However, you can adjust kerning so it fits the P letter:
%!TEX program = lualatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\newcommand{\mydoT}[1]{#1\kern -.2em \char"0323\relax}
\begin{document}
\Huge
p\char"0323\relax
p\kern -.2em \char"0323\relax
\mydoT{p}
\end{document}
Combining characters sometimes need some help if the font designer didn't set up anchors for them.
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\DeclareRobustCommand{\pdb}{%
p\llap{^^^^0323\kern0.4\fontcharwd\font`p}%
}
\DeclareRobustCommand{\gdb}{%
g\llap{\lower0.9\fontchardp\font`g\hbox{^^^^0323\kern0.5\fontcharwd\font`g}}%
}
\begin{document}
\pdb\d{o}\gdb\d{n}
\end{document}
Here the combining character U+0323 COMBINING DOT BELOW is placed in a zero width box by itself, so it doesn't combine. A suitable kern is added at the end, which moves left the character.
The amount of adjustment has to be computed on a font basis, I'm afraid.
If you want to move down the dot below the p, use the definition of \gdb
as a template.