<p>
- это специальный тег в HTML. Вы не можете вставлять абзацы в другой абзац, а открытие двух тегов P неявно закрывает предыдущий. Ваш код фактически интерпретируется как:
<p></p> <---closed by having opened the next <p>
<p><span>TEXT1</span></p>
<p><span>TEXT2</span></p>
<span>3</span>
etc...
Таким образом, 3,4,5 пролета вообще НЕ находятся внутри <p>
.