Не все элементы можно вкладывать в какие-то другие элементы.
В частности в тег
<p>
можно вкладывать только
строчные элементы.
Формальное описание что можно вкладывать в тег можно посмотреть в спецификации или
MDN.
В частности для
<p>
там написано «Разрешённое содержимое:
фразовый контент».
В случае неправильного вложения браузер пытается починить DOM-дерево как может (на самом деле по определённым правилам которые тоже есть в спецификации) и чаще всего он просто закрывает теги до тех пор пока не получит не доберётся до родителя в котором данный контент разрешён.
UPD: Вопрос на самом деле довольно неочевидный для новичков, так что есть полезный сайт
https://caninclude.glitch.me/caninclude?child=ul&p...