jQuery loop .fadeIn e .fadeOut das tags p dentro de div, uma de cada vez

O código abaixo diminui com êxito em um depoimento por 6 segundos, aguarda 3 segundos e depois diminui e passa para o próximo. Quando chega ao terceiro depoimento, volta ao primeiro. É exatamente isso que eu quero, mas no meu site atual eu tenho mais de três depoimentos e, no futuro, talvez esteja adicionando mais. Não quero voltar e adicionar uma nova função sempre que adicionar um novo depoimento. Tentei por algum tempo fazê-lo funcionar usando "this" e .next (), mas falhei. Espero que alguém possa tornar isso muito mais eficiente fazendo um loop e fazendo com que ele passe para a próxima tag p dentro do contêiner sem chamar uma nova função todas as vezes. Qualquer ajuda é apreciada, obrigado

Nota: Eu sei que existem perguntas semelhantes, mas nenhuma delas é a mesma e as respostas são inferiore

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style>
#tml-container p { display: none; }
</style>
</head>
<body>

<div id="tml-container">
    <p id="one">Testimonial 1</p>
    <p id="two">Testimonial 2</p>
    <p id="three">Testimonial 3</p>
</div>

<script>
$(document).ready(function() {
    function doFade() {
        $("#one").fadeIn(6000,function() {
            $("#one").fadeOut(6000).delay(3000);
            setTimeout(fadeTwo,6000);
        });
    }

    function fadeTwo() {
        $("#two").fadeIn(6000,function() {
            $("#two").fadeOut(6000).delay(3000);
            setTimeout(fadeThree,6000);
        });
    }

    function fadeThree() {
        $("#three").fadeIn(4000,function() {
            $("#three").fadeOut(6000).delay(3000);
            setTimeout(doFade,6000);
        });
    }
    doFade();
});
</script>

</body>
</html>

questionAnswers(2)

yourAnswerToTheQuestion