Oi, Pedro! Como vai?
Agradeço por compartilhar.
Seu código ficou bem organizado, com bom uso de @property, @classmethod e da lista de classe pessoas para armazenar os objetos criados. Um ponto que chamou atenção foi o uso de self.nome.title(), que ajuda a padronizar os nomes, e o método aniversario(), que altera a idade do objeto de forma simples e direta.
Uma dica interessante para o futuro é usar o cls também ao adicionar a pessoa na lista dentro do __init__, deixando o código mais alinhado com a ideia de classe:
class Pessoa:
pessoas = []
def __init__(self, nome="", idade=0, profissao=""):
self.nome = nome.title()
self.idade = idade
self.profissao = profissao
self.__class__.pessoas.append(self)
Esse código adiciona cada novo objeto criado na lista da própria classe, mantendo a organização caso a classe seja reutilizada ou herdada no futuro.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!