You can also combine the old ProcessingJS (not p5js) JavaScript dialect with python Jupyter notebooks by using Calysto:
To use p5.js in a notebook environment, you can use Observable:
…but as far as Python-in-python, the alpha p5py is the only thing I am aware of.