Вот два более-менее простых варианта... но уверен, можно придумать еще кучу.
const div1 = document.getElementById('div1');
const div2 = document.getElementById('div2');
let pars = document.querySelectorAll('p');
pars.forEach(e => {
e.addEventListener('click',(event) => {
let el = event.target;
let id = el.parentElement.id;
if (id === div2.id) div1.append(el);
if (id === div1.id) div2.append(el);
pars = document.querySelectorAll('p');
})
})
const divs = document.querySelectorAll('#div1,#div2');
divs.forEach(e => e.onclick = (event) => {
let el = event.target;
let id = el.parentElement.id;
if (id === divs[1].id) divs[0].append(el);
if (id === divs[0].id) divs[1].append(el);
})
Второй меньше и как-то больше подходит под задачу... append же можно заменить на prepend, в условиях не указано место размещения элемента... или вообще настроить автоматическую сортировку.