Faits :
A.
Par jugement du 28 janvier 2019, le Tribunal pénal de l'arrondissement de la Sarine a reconnu A._ coupable de crime à l'ancienne loi fédérale sur les stupéfiants au sens de l'art. 19 al. 1 let. c et al. 2 let. a et c aLStup et l'a condamné à une peine privative de liberté ferme de 45 mois, ainsi qu'au paiement d'une créance compensatrice de 20'000 francs. Il a en outre ordonné la confiscation et la destruction de stupéfiants et de divers effets, ainsi que la confiscation de la somme de 6'150 fr. et sa dévolution à l'État.
B.
Par arrêt du 27 janvier 2020, la Cour d'appel pénal du Tribunal cantonal fribourgeois a rejeté l'appel formé par A._ contre ce jugement et a confirmé celui-ci.
C.
Saisi d'un recours en matière pénale contre cet arrêt, le Tribunal fédéral a, par arrêt 6B_386/2020 du 14 août 2020, partiellement admis le recours de A._, annulé l'arrêt attaqué et renvoyé la cause à la cour cantonale pour nouvelle décision. Le recours a été rejeté pour le surplus, dans la mesure où il était recevable.
D.
Par arrêt du 26 novembre 2020, rendu à la suite de l'arrêt de renvoi du 14 août 2020, la cour cantonale a partiellement admis l'appel de A._ et réformé le jugement de première instance en ce sens qu'elle l'a reconnu coupable de crime au sens de l'art. 19 al. 1 let. c et al. 2 let. a et c aLStup et l'a condamné à une peine privative de liberté de 40 mois. Pour le surplus, elle a confirmé ce jugement.
En substance, la cour cantonale a retenu les faits suivants.
En 2008, A._ a commencé à s'adonner au trafic de cocaïne, lequel s'est poursuivi jusqu'au 14 septembre 2015. Durant la période en cause, le trafic effectué par A._ a consisté en la vente, la remise gratuite et la possession en vue de la vente d'une quantité d'au minimum 1'108 grammes de cocaïne bruts, soit 332 grammes de cocaïne pure.
Dans le cadre de son trafic de cocaïne, il a réalisé un chiffre d'affaires de l'ordre de 110'000 fr. environ.
E.
A._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 26 novembre 2020. Il conclut, avec suite de frais, principalement à l'annulation de l'arrêt entrepris et à sa réforme en ce sens qu'il est condamné à une peine privative de liberté de 30 mois, dont 9 mois fermes et 21 mois avec sursis pendant 5 ans, sous déduction des jours d'arrestation et de détention provisoire subis du 14 septembre 2015 au 13 juin 2016, à ce que les frais de procédure de première instance et d'appel soient laissés à la charge de l'État de Fribourg, et qu'une indemnité de partie au sens de l'<ref-law> d'un montant de 4'000 fr. lui soit allouée pour la procédure d'appel. Subsidiairement, il conclut à l'annulation de l'arrêt attaqué et au renvoi de la cause à la cour cantonale pour nouvelle décision. Enfin, il conclut à l'allocation d'une indemnité équitable d'un montant de 3'500 fr. pour la procédure devant le Tribunal fédéral.

Considérant en droit :
1.
Le recourant invoque une violation des art. 6 par. 3 let. d CEDH, 29 al. 2, 32 al. 2 Cst., 107 al. 1 let. b et 147 CPP, en ce que la cour cantonale aurait violé son droit à la confrontation et son droit à un procès équitable.
1.1. L'art. 6 par. 3 let. d CEDH garantit à tout accusé le droit d'interroger ou de faire interroger les témoins à charge et d'obtenir la convocation et l'interrogation des témoins à décharge dans les mêmes conditions que les témoins à charge. Cette disposition exclut qu'un jugement pénal soit fondé sur les déclarations de témoins sans qu'une occasion appropriée et suffisante soit au moins une fois offerte au prévenu de mettre ces témoins en doute et d'interroger les témoins, à quelque stade de la procédure que ce soit (<ref-ruling> consid. 1.3; <ref-ruling> consid. 3.1; <ref-ruling> consid. 2.2; arrêts 6B_136/2021 du 6 septembre 2021 consid. 1.1; 6B_1028/2020 du 1er avril 2021 consid. 1.2.1; 6B_383/2019 du 8 novembre 2019 consid. 8.1.2 non publié aux <ref-ruling>). Il s'agit de l'un des aspects du droit à un procès équitable institué à l'art. 6 par. 1 CEDH. En tant qu'elle concrétise le droit d'être entendu (art. 29 al. 2 Cst.), cette exigence est également garantie par l'art. 32 al. 2 Cst. (<ref-ruling> consid. 3.1.2; <ref-ruling> consid. 2.2; arrêt 6B_1028/2020 du 1er avril 2021 consid. 1.2.1).
1.2. Aux termes de l'<ref-law>, les parties ont le droit d'assister à l'administration des preuves par le ministère public et les tribunaux et de poser des questions aux comparants (art. 147 al. 1 1ère phrase CPP). Selon l'<ref-law>, les preuves administrées en violation de l'<ref-law> ne sont pas exploitables à la charge de la partie qui n'était pas présente.
Le droit de participer à l'administration des preuves suppose toutefois la qualité de partie. Le prévenu ne peut par conséquent participer à l'audition de coaccusés que si ces personnes sont accusées dans la même procédure que lui. Le droit du prévenu de participer à l'administration des preuves selon l'<ref-law> ne s'étend donc pas aux procédures conduites séparément contre d'autres prévenus (<ref-ruling> consid. 1.2.3; arrêts 6B_136/2021 du 6 septembre 2021 consid. 1.2; 6B_1028/2020 du 1er avril 2021 consid. 1.2.2). Il faut cependant tenir compte du droit de confrontation lorsque les autorités de poursuite pénale se fondent sur les déclarations d'un prévenu ressortant d'une procédure conduite séparément dans la mesure où celles-ci ne peuvent être utilisées que si le prévenu a au moins eu une fois la possibilité de mettre en doute les déclarations à sa charge et de poser des questions au prévenu contre lequel la procédure séparée est menée (<ref-ruling> consid. 4.5; <ref-ruling> consid. 1.3; arrêts 6B_136/2021 du 6 septembre 2021 consid. 1.2; 6B_1028/2020 du 1er avril 2021 consid. 1.2.2).
1.3. Les déclarations faites lors d'une première audience en violation de l'<ref-law> demeurent inutilisables conformément à l'<ref-law> lorsque la personne interrogée ne s'exprime pas librement et sans influence sur la cause dans le cadre d'une confrontation ultérieure (cf. <ref-ruling> consid. 1.6; arrêt 6B_136/2021 du 6 septembre 2021 consid. 2.4). Il ne suffit donc pas que la personne interrogée se limite à simplement confirmer ses déclarations antérieures. Si des déclarations faites lors d'auditions conduites en violation du droit de participer en vertu de l'<ref-law> sont textuellement présentées aux personnes interrogées lors d'auditions de confrontation ultérieures, ces déclarations sont utilisées de manière inadmissible au sens de l'<ref-law> (<ref-ruling> consid. 1.6.1; arrêt 6B_136/2021 du 6 septembre 2021 consid. 2.4).
1.4. Dans son arrêt de renvoi 6B_386/2020 du 14 août 2020, le Tribunal fédéral a considéré que B._ n'avait pas, lors de son audition par-devant le ministère public le 9 juin 2016, intégralement confirmé ses précédentes déclarations tenues devant la police sans la présence du recourant et de son défenseur, en indiquant ne pas se souvenir de tous les éléments concernés. Lors de l'audition devant le ministère public, la prénommée avait confirmé avoir acheté une " certaine quantité " de cocaïne au recourant, en précisant avoir également " fait la fête " avec ce dernier (cf. arrêt 6B_386/2020 du 14 août 2020 consid. 3.5.1).
En conséquence, il appartenait à la cour cantonale de procéder à une nouvelle appréciation des preuves, en examinant quelles quantités de stupéfiants pouvaient être retenues à la charge du recourant, compte tenu de la consommation admise par B._ et des achats de cocaïne auprès de celui-ci ayant été reconnus lors de l'audition de confrontation du 9 juin 2016 (cf. arrêt 6B_386/2020 du 14 août 2020 consid. 3.6).
1.5. A la suite de l'arrêt de renvoi précité, la cour cantonale a retenu que B._ connaissait le recourant depuis 2008, qu'elle lui avait régulièrement acheté de la cocaïne depuis lors au prix de 100 fr. le gramme, que le recourant avait toujours de la cocaïne sur lui et qu'il en vendait régulièrement à d'autres consommateurs ou encore qu'il lui était arrivé de partager gratuitement sa consommation avec elle. De plus, si B._ avait été incapable de confirmer quelles quantités exactes elle avait consommées entre 2008 et 2012 - ne confirmant ainsi pas intégralement ses précédentes déclarations à la police -, elle avait néanmoins déclaré que, pendant une période de onze mois entre 2011 et 2012, soit pendant 330 jours au total, elle avait consommé un gramme de cocaïne par jour à tout le moins et qu'un tiers de cette quantité avait été acheté auprès du recourant, soit 110 grammes au total. Elle avait en outre confirmé que, durant la demi-année qui avait précédé son séjour dans une clinique en 2013, soit pendant 180 jours, elle avait consommé entre 1 et 4 grammes de cocaïne par jour, voire 5 à 7 grammes les week-ends, de sorte qu'il devait être retenu qu'elle avait acheté et consommé une quantité totale minimale de 1 gramme par jour en semaine, soit pendant 120 jours, et de 5 grammes le week-end pendant la période en question, soit pendant 24 week-ends. Dans la mesure où elle avait également confirmé que le quart de sa consommation avait été acheté auprès du recourant pendant cette même période, celui-ci avait vendu à B._ une quantité totale minimale de 60 grammes bruts de cocaïne au prix de 100 fr. le gramme en 2013. Ainsi, il y avait lieu de retenir " in dubio pro reo " qu'entre 2008 et le 14 septembre 2015, le recourant avait vendu à B._ une quantité indéterminée de cocaïne, mais au minimum 170 grammes bruts pour un montant de 17'000 francs, et lui avait remis gratuitement une quantité indéterminée de cette drogue (cf. arrêt entrepris, consid. 3.2 p. 5 s.).
1.6. Le recourant fait grief à la cour cantonale de s'être fondé sur les chiffres articulés par B._ au sujet de sa consommation de cocaïne lors de son audition devant la police effectuée sans sa présence. Or, lors de l'audition de confrontation, la prénommée n'avait pas été en mesure de confirmer ces chiffres et avait fait preuve d'une grande prudence au moment de chiffrer sa consommation et la proportion effectivement acquise auprès du recourant. En outre, il ressortait du procès-verbal d'audience du 9 juin 2016 qu'elle avait simplement été invitée à préciser les chiffres et les proportions données lors de sa précédente audition du 3 juin 2016.
Contrairement à ce que soutient le recourant, la cour cantonale ne s'est nullement fondée sur les chiffres indiqués par B._ lors de son audition menée par-devant la police le 3 juin 2016. En effet, lors de l'audition de confrontation du 9 juin 2016, la prénommée a articulé de nouveaux chiffres concernant la quantité de cocaïne acquise auprès du recourant. Ce sont ces chiffres que la cour cantonale a ensuite pris en compte pour déterminer la quantité totale de cocaïne que B._ avait achetée en mains du recourant, conformément à l'arrêt de renvoi 6B_386/2020 du 14 août 2020.
Il est vrai que B._ s'est montrée très prudente en cours d'audition dans les chiffres initialement présentés, déclarant qu'à la suite d'une entrevue avec son avocat, elle ne devait pas en articuler sans être sûre (cf. pièce 3058; <ref-law>). Or, malgré cette mise en garde, elle a articulé de nouveaux chiffres en lien avec sa consommation, ce qui tend à renforcer ses déclarations sur ce point.
En se fondant sur les quantités de cocaïne indiquées par B._ lors de l'audition de confrontation du 9 juin 2016 effectuée en présence du recourant et de son défenseur, la cour cantonale n'a pas violé le droit à la confrontation du recourant, de sorte que ce grief doit être rejeté.
2.
Le recourant reproche à la cour cantonale d'avoir apprécié les preuves et établi les faits de manière arbitraire, en ce qu'elle a retenu la vente d'une quantité minimum de 170 grammes de cocaïne à B._ entre 2008 et le 14 septembre 2015.
2.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (<ref-law>), à moins que celles-ci n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, à savoir pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation, mais aussi dans son résultat (<ref-ruling> consid. 1.3.1; <ref-ruling> consid. 1.1; <ref-ruling> consid. 2.3.1). Le Tribunal fédéral n'entre en matière sur les moyens fondés sur la violation de droits fondamentaux, dont l'interdiction de l'arbitraire, que s'ils ont été invoqués et motivés de manière précise (<ref-law>; <ref-ruling> consid. 1.1). Les critiques de nature appellatoire sont irrecevables (<ref-ruling> consid. 1.3.1; <ref-ruling> consid. 1.1).
En matière d'appréciation des preuves et d'établissement des faits, il n'y a arbitraire que lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables (<ref-ruling> consid. 3.6.2; <ref-ruling> consid. 1.1 et les références citées). Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence à la présomption d'innocence (art. 6 par. 2 CEDH, 32 al. 1 Cst. et 10 CPP), le principe " in dubio pro reo " n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> consid. 1.3.1; <ref-ruling> consid. 1.1).
2.2. Le recourant invoque tout d'abord le caractère sommaire des déclarations de B._ au sujet de sa consommation entre 2011 et 2012. Il ne ressortirait pas expressément de celles-ci que la prénommée consommait chaque jour entre 1 et 3 grammes de cocaïne, ou s'il y avait des jours sans consommation et quelle aurait été la fréquence des jours d'abstinence.
En tant qu'il s'écarte de l'établissement des faits opéré par la cour cantonale sans en démontrer l'arbitraire, sa critique est appellatoire. Au demeurant, le fait que B._ ait relativisé sa consommation de 5 grammes de cocaïne par jour pendant la période précitée, en déclarant que ce n'était qu'une estimation et que " [d]es fois c'était 1 à 3 grammes et c'est sûrement aussi arrivé plus " (cf. pièce 3058) ne signifie pas qu'il existerait des jours d'abstinence, mais qu'au contraire, cette consommation variait entre 1 et 5 grammes par jour. Il n'est dès lors pas manifestement insoutenable d'en conclure que la prénommée consommait au minimum 1 gramme de cocaïne par jour durant cette période.
2.3. Le recourant critique également l'arrêt entrepris en ce qu'il retient une proportion d'un tiers de cocaïne effectivement acheté au recourant. Selon les déclarations de B._, la proportion d'un tiers était " d'environ juste ", de sorte qu'il n'était pas possible de déterminer si une proportion plus basse devait être retenue en application du principe " in dubio pro reo ", compte tenu du caractère hésitant de ces déclarations et de la possibilité que la prénommée ait acheté une proportion inférieure à un tiers de sa consommation auprès du recourant. En outre, la qualification de cette proportion " d'environ juste " lors de l'audition de confrontation consistait en sa relativisation et non pas en la confirmation de proportion de drogue acquise auprès du recourant, toute autre interprétation étant arbitraire.
En l'espèce, le recourant se borne à opposer sa propre appréciation des preuves à celle de la cour cantonale dans une démarche appellatoire et, partant, irrecevable. L'on ne voit pas en quoi la cour cantonale aurait versé dans l'arbitraire en retenant une proportion d'un tiers, alors que celle-ci a été qualifiée d'environ juste par la prénommée.
2.4. S'agissant de la consommation de B._ en 2013, le recourant considère qu'une application du principe " in dubio pro reo " commanderait de retenir tout au plus une consommation de 4 grammes de cocaïne en faisant abstraction de la possibilité toute relative d'une consommation supérieure le week-end, dans la mesure où la prénommée indiquait seulement comme possible une consommation de 5 à 7 grammes certains week-ends et où ses propos laissaient donc entendre qu'il y avait des week-ends où elle consommait moins, élément qui n'était arbitrairement pas pris en compte par la cour cantonale.
A nouveau, le recourant se borne à opposer sa propre appréciation des faits à celle de la cour cantonale dans une démarche appellatoire et, partant, irrecevable. Au demeurant, il n'est pas manifestement insoutenable de retenir une consommation de 5 grammes les week-ends, vu que la prénommée a admis consommer beaucoup de cocaïne pendant cette période et que la cour cantonale n'a retenu que les quantités minimales de consommation de celle-ci tant durant la semaine que pendant les week-ends.
2.5. Le recourant se fonde enfin sur l'ordonnance pénale du 8 juin 2017 rendue à l'encontre de B._, selon laquelle la prénommée avait acquis une quantité indéterminée de cocaïne au recourant et auprès de deux autres inconnus à W._. En procédant à un calcul purement abstrait des quantités de cocaïne que la prénommée aurait achetées au recourant, la cour cantonale aurait fait une appréciation arbitraire des moyens de preuves.
Cette argumentation ne saurait être suivie. En effet, l'ordonnance pénale précitée ne porte que sur la période comprise entre le mois de juin 2013 et le 3 juin 2016 en ce qui concerne l'acquisition d'une quantité indéterminée de cocaïne par B._ au recourant. Elle ne se prononce aucunement sur la période entre 2011 et 2013, dans la mesure où les contraventions à la LStup antérieures au mois de mai 2014 étaient prescrites (cf. pièce 10036 p. 10039; <ref-law>). Cette ordonnance pénale est dès lors sans pertinence à l'appui du grief du recourant. En outre, le calcul des quantités de cocaïne acquises par la prénommée se fonde sur les déclarations de celle-ci, de sorte que l'on ne peut reprocher à la cour cantonale d'avoir effectué ce calcul dans l'abstrait. Mal fondé, le grief du recourant doit être rejeté.
2.6. Vu ce qui précède, le recourant échoue à démontrer l'arbitraire dans l'appréciation des preuves et l'établissement des faits par la cour cantonale.
3.
Le recourant critique la peine privative de liberté de 40 mois, qu'il estime excessive.
3.1. Selon l'<ref-law>, le juge fixe la peine d'après la culpabilité de l'auteur. Il prend en considération les antécédents et la situation personnelle de ce dernier ainsi que l'effet de la peine sur son avenir (al. 1). La culpabilité est déterminée par la gravité de la lésion ou de la mise en danger du bien juridique concerné, par le caractère répréhensible de l'acte, par les motivations et les buts de l'auteur et par la mesure dans laquelle celui-ci aurait pu éviter la mise en danger ou la lésion, compte tenu de sa situation personnelle et des circonstances extérieures (al. 2). La culpabilité de l'auteur doit être évaluée en fonction de tous les éléments objectifs pertinents, qui ont trait à l'acte lui-même, à savoir notamment la gravité de la lésion, le caractère répréhensible de l'acte et son mode d'exécution. Du point de vue subjectif, sont pris en compte l'intensité de la volonté délictuelle ainsi que les motivations et les buts de l'auteur. A ces composantes de la culpabilité, il faut ajouter les facteurs liés à l'auteur lui-même, à savoir les antécédents, la réputation, la situation personnelle (état de santé, âge, obligations familiales, situation professionnelle, risque de récidive, etc.), la vulnérabilité face à la peine, de même que le comportement après l'acte et au cours de la procédure pénale (<ref-ruling> consid. 6.1.1 et les références citées).
Le juge dispose d'un large pouvoir d'appréciation dans la fixation de la peine. Le Tribunal fédéral n'intervient que lorsque l'autorité cantonale a fixé une peine en dehors du cadre légal, si elle s'est fondée sur des critères étrangers à l'<ref-law>, si des éléments d'appréciation importants n'ont pas été pris en compte ou, enfin, si la peine prononcée est exagérément sévère ou clémente au point de constituer un abus du pouvoir d'appréciation (<ref-ruling> consid. 1.2). L'exercice de ce contrôle suppose que le juge exprime, dans sa décision, les éléments essentiels relatifs à l'acte ou à l'auteur dont il tient compte, de manière à ce que l'on puisse constater que tous les aspects pertinents ont été pris en considération et comment ils ont été appréciés, que ce soit dans un sens aggravant ou atténuant (<ref-law>; <ref-ruling> consid. 1.2). La motivation doit ainsi justifier la peine prononcée, en permettant de suivre le raisonnement adopté, même si le juge n'est pas tenu d'exprimer en chiffres ou en pourcentages l'importance qu'il accorde à chacun des éléments qu'il cite (<ref-ruling> consid. 1.2; <ref-ruling> consid. 5.6).
3.2. En matière de trafic de stupéfiants, il y a lieu de tenir compte plus spécifiquement des éléments suivants. Même si la quantité de drogue ne joue pas un rôle prépondérant, elle constitue sans conteste un élément important. Elle perd cependant de l'importance au fur et à mesure que l'on s'éloigne de la limite, pour la cocaïne de 18 grammes (<ref-ruling> consid. 3.2 p. 103), à partir de laquelle le cas doit être considéré comme grave au sens de l'<ref-law> (<ref-ruling> consid. 2b/aa p. 196). Le type de drogue et sa pureté doivent aussi être pris en considération (<ref-ruling> consid. 2c p. 301 s.; <ref-ruling> consid. 2b/aa p. 196). Le type et la nature du trafic en cause sont aussi déterminants. L'appréciation est différente selon que l'auteur a agi de manière autonome ou comme membre d'une organisation. Dans ce dernier cas, il importera de déterminer la nature de sa participation et sa position au sein de l'organisation. L'étendue du trafic entrera également en considération. Un trafic purement local sera en règle générale considéré comme moins grave qu'un trafic avec des ramifications internationales. Enfin, le nombre d'opérations constitue un indice pour mesurer l'intensité du comportement délictueux. S'agissant d'apprécier les mobiles qui ont poussé l'auteur à agir, le juge doit distinguer le cas de celui qui est lui-même toxicomane et agit pour financer sa propre consommation de celui qui participe à un trafic uniquement poussé par l'appât du gain (arrêt 6B_227/2020 du 29 avril 2020 consid. 2.1 et les références citées).
3.3. La cour cantonale a retenu que la faute du recourant était lourde et sa culpabilité importante. En effet, il lui était reproché d'avoir mis en place un trafic de stupéfiants ayant porté sur quelque 1'108 grammes de cocaïne brute, avec un taux de pureté moyen de 30%, soit 332 grammes de cocaïne pure, ce qui représentait pas moins de 18 fois le cas grave. Outre le fait que la quantité de cocaïne qu'il était reproché au recourant d'avoir acquise, puis écoulée était intrinsèquement importante, elle avait été acquise à l'occasion de plusieurs transactions, ventilées sur plusieurs années d'activité délictueuse, soit sur plus de sept ans. Ce trafic avait généré un chiffre d'affaires important, soit pas moins de 110'000 francs. Le recourant était certes lui-même consommateur, mais pas toxicodépendant. Toutefois, le trafic auquel s'était adonné le recourant était d'envergure nationale, ses fournisseurs étant supposément basés à U._ et à V._, alors que la cocaïne était essentiellement écoulées à W._ et ses environs (cf. arrêt entrepris, consid. 4.4 p. 8).
Le mobile du recourant était purement égoïste, à savoir dicté par l'appât d'un gain rapide et conséquent, à tout le moins de manière prépondérante. En outre, le recourant n'aurait jamais mis un terme à son activité délictueuse de son propre chef et seule son arrestation était susceptible d'y mettre un terme (cf. arrêt entrepris, consid. 4.4 p. 8).
La cour cantonale a retenu que la situation personnelle du recourant devait avoir un effet neutre sur la peine (cf. arrêt entrepris, consid. 4.6 p. 8).
S'agissant de l'effet de la peine sur l'avenir du recourant, la cour cantonale a retenu que celui-ci invoquait être un père - et un grand-père - très investi dans sa vie de famille et dans son rôle d'homme au foyer. Il soulignait également qu'il disposait d'un emploi stable qui lui permettait de subvenir à ses besoins. Toutefois, la cour cantonale a considéré que le recourant était déjà père - et grand-père - de famille au moment des faits, ce qui ne l'avait pas empêché de s'adonner à l'important trafic de cocaïne qu'on lui reprochait d'avoir mis en place, lequel allait largement au-delà d'un trafic destiné à financer sa consommation personnelle. Au demeurant, les éléments invoqués, même établis, ne laissaient pas penser que la peine prononcée aurait eu un impact plus important sur l'avenir du recourant que sur celui de la plupart des autres condamnés. Ils ne justifiaient dès lors pas d'atténuer la peine prononcée (cf. arrêt entrepris, consid. 4.7 p. 8 s.).
Le fait que le casier judiciaire du recourant était vierge était un élément qui devait être qualifié de neutre dans le cadre de la fixation de la peine (cf. arrêt entrepris, consid. 4.8 p. 9).
S'agissant de la volonté de s'amender du recourant, la cour cantonale l'a considérée toute relative. D'une part, sa collaboration au cours de l'instruction devait être qualifiée de mauvaise. En effet, lorsqu'il ne s'était pas borné à nier en bloc les accusations portées contre lui - ce qui était son droit en tant que prévenu -, le recourant n'avait eu de cesse de louvoyer, de mentir, de se contredire et d'adapter sa version des faits au gré de l'avancement de l'instruction et de ses seuls intérêts, admettant uniquement qu'il avait consommé de la cocaïne avec des amis lors des travaux effectués sur sa maison. D'autre part, il ne donnait pas l'impression d'avoir saisi la gravité des actes qui lui étaient reprochés, soutenant en première instance qu'il était la victime collatérale d'un complot ourdi contre lui par des individus peu scrupuleux qui auraient cherché prétendument à lui nuire en portant contre lui des accusations qu'ils savaient fausses. Ses regrets ne portaient que sur le fait d'avoir consommé de la drogue et d'avoir eu affaire aux personnes qui l'avaient accusé de leur avoir vendu de la drogue. Selon la cour cantonale, les capacités d'introspection du recourant semblaient ténues (cf. arrêt entrepris, consid. 4.9 p. 9).
Enfin, la responsabilité pénale du recourant était pleine et entière (cf. arrêt entrepris, consid. 4.10 p. 9).
3.4.
3.4.1. Le recourant reproche tout d'abord à la cour cantonale de s'être fondée exclusivement - voire à tout le moins de manière prépondérante - sur la quantité de drogue acquise puis écoulée. Quand bien même cette quantité était divisée par plus de la moitié par rapport à celle retenue avant l'arrêt de renvoi du Tribunal fédéral, la cour cantonale n'avait procédé qu'à une déduction de cinq mois de la peine initiale, alors que les autres critères de pondération restaient inchangés. De même, la cour cantonale n'aurait pas pris en compte la diminution du nombre de transactions effectuées en fonction de la nouvelle quantité de cocaïne écoulée, alors même que la nouvelle appréciation des preuves imposée à la suite de l'arrêt de renvoi du Tribunal fédéral permettrait d'exclure à tout le moins 110 transactions. Il était en outre faux de retenir une faute presque aussi grave pour l'acquisition et la vente de 281 grammes de cocaïne pure que pour une quantité de 666 grammes, ce d'autant plus que le ministère public avait conclu à ce que la nouvelle peine soit fixée à 39 mois.
Selon la jurisprudence rappelée ci-dessus, si la quantité de drogue constitue un élément important dans la fixation de la peine, elle perd cependant de l'importance au fur et à mesure que l'on s'éloigne de la limite de 18 grammes pour la cocaïne. Par conséquent, il n'apparaît pas abusif de considérer que la diminution de la quantité de drogue écoulée par le recourant finalement retenue n'ait eu qu'une faible importance sur la diminution de la peine finalement prononcée, ce que le recourant semble admettre lui-même.
Le recourant perd de vue que la cour cantonale, à la suite de l'arrêt de renvoi du Tribunal fédéral 6B_386/2020 du 14 août 2020, a réduit la peine privative de liberté prononcée à son encontre de cinq mois, en raison de la quantité moindre de cocaïne écoulée finalement retenue, et donc a fortiori du nombre de transactions. Il ne peut dès lors être fait grief à la cour cantonale de n'avoir pas pris en considération cet élément dans la fixation de la peine. Au surplus, il ressort de la motivation de l'arrêt attaqué que la cour cantonale a estimé que le nombre de transactions était néanmoins important et que ces dernières étaient ventilées sur une période de plus de sept ans d'activité délictueuse. La cour cantonale n'avait à cet égard pas à exprimer en chiffres ou en pourcentage l'importance qu'elle accordait à cet élément, conformément à la jurisprudence précitée (cf. supra consid. 3.1).
Enfin, la cour cantonale n'était pas liée par la peine requise par le ministère public.
3.4.2. Le recourant estime également que la peine privative de liberté de 40 mois prononcée par la cour cantonale serait totalement hors de proportion avec les peines infligées usuellement par le tribunal cantonal fribourgeois dans les cas de trafic portant sur une quantité approximative de 280 à 350 grammes de cocaïne pure.
Toute comparaison avec d'autres affaires est délicate, vu les nombreux paramètres entrant en ligne de compte pour la fixation de la peine. Les disparités en cette matière s'expliquent normalement par le principe de l'individualisation des peines, voulu par le législateur; elles ne suffisent pas en elles-mêmes pour conclure à un abus du pouvoir d'appréciation (<ref-ruling> consid. 6.3.2 p. 69).
La jurisprudence fribourgeoise citée par le recourant à l'appui de son grief se distingue de la présente affaire notamment quant au rôle joué dans le trafic, à la durée de l'activité délictueuse et au nombre de transactions effectuées, de sorte qu'une comparaison est par essence hasardeuse. Il en va de même de l'arrêt du Tribunal fédéral 2C_145/2016 du 14 novembre 2016 cité par le recourant, qui ne fournit que des éléments de faits généraux en lien avec l'infraction à la loi sur les stupéfiants, puisqu'il était question dans cette affaire d'une mesure d'éloignement en droit des étrangers à la suite d'une condamnation pénale.
3.4.3. Contrairement à ce qu'allègue le recourant, il ne saurait être reproché à la cour cantonale d'avoir retenu l'envergure nationale du trafic auquel s'est adonné le recourant, dans la mesure où il ressort de l'arrêt attaqué qu'il s'approvisionnait à U._ et à V._ pour écouler ensuite la cocaïne à W._ et ses environs (cf. arrêt entrepris, consid. 4.4 p. 8), élément qui semble d'ailleurs avoir été mis en exergue principalement pour nier le caractère international du trafic.
3.4.4. Le recourant fait grief à la cour cantonale d'avoir retenu un chiffre d'affaires important de 110'800 francs. Or, faute de pouvoir arrêter un montant de cocaïne déterminé remis à B._, le chiffre d'affaires serait de maximum 93'800 fr., montant qui n'est pas considéré comme un chiffre d'affaires important. En toute hypothèse, la cour cantonale ne pouvait pas prendre en considération le chiffre d'affaires de 110'800 fr. dans la fixation de la peine, en raison de l'interdiction de la double prise en considération.
Dans la mesure où son premier argument repose sur un chiffre d'affaires inférieur à celui retenu par la cour cantonale sans que celle-ci l'ait établi de manière arbitraire, il est sans objet.
L'interdiction de la double prise en considération, dénoncée par le recourant à l'appui de son moyen, signifie que les circonstances qui conduisent à élever ou à diminuer le cadre de la peine ne doivent pas être prises en considération une seconde fois comme éléments aggravants ou atténuants dans le cadre modifié de la peine, sans quoi l'auteur pâtirait ou bénéficierait deux fois de la même circonstance (<ref-ruling> consid. 5.4 p. 17; arrêt 6B_289/2020 du 1 er décembre 2020 consid. 13.3.3). Toutefois, le juge peut apprécier l'importance que ces circonstances revêtent dans le cas particulier dans le cadre de l'<ref-law>. En effet, le juge fixe la peine en fonction de la gravité de la faute qui doit être évaluée au regard des circonstances de l'infraction et de la personne de l'auteur (arrêt 6B_289/2020 du 1er décembre 2020 consid. 13.3.3).
En l'espèce, la cour cantonale a retenu le chiffre d'affaires de 110'800 fr. engendré par le trafic et en a ainsi tenu compte de manière concrète dans le cadre de la faute du recourant d'une manière qui échappe à toute critique. Le grief doit partant être rejeté.
3.4.5. Selon le recourant, que le chiffre d'affaires finalement retenu soit fixé à 93'800 fr. ou 110'800 fr., la cour cantonale aurait négligé de prendre en considération, s'agissant du mobile du recourant, le fait que le chiffre d'affaires - voire un éventuel bénéfice - dégagé par le trafic était immédiatement réabsorbé dans la consommation de cocaïne du recourant. Bien que sa consommation ne ressorte pas de l'arrêt entrepris, il conviendrait dans tous les cas d'en tenir compte dans la fixation de la peine. Par ailleurs, il serait faux d'affirmer que le recourant serait mû par l'appât d'un gain rapide et conséquent, à tout le moins de manière prépondérante, alors même qu'il dégageait un chiffre d'affaires de l'ordre de 1'115 fr. à 1'320 fr. par mois et ne recevait que 1'000 fr. par mois de sa femme jusqu'en 2015. Le recourant, père au foyer, ne disposait donc pas de suffisamment de moyens pour couvrir son minimum vital.
En tant qu'il s'écarte des faits tels qu'établis par la cour cantonale et qui lient le Tribunal fédéral (cf. <ref-law>), l'argumentation du recourant quant à l'utilisation du chiffre d'affaires pour sa propre consommation est appellatoire. Au demeurant, comme le recourant l'admet lui-même, il ne disposait, comme autre source de revenus, que des mensualités versées par son épouse, de sorte que même en vivant très modestement, il ne pouvait guère renoncer aux profits générés par son trafic, lequel lui permettait de doubler ses revenus mensuels. En outre, comme l'a retenu la cour cantonale, le recourant n'était pas toxicodépendant. Par conséquent, la cour cantonale n'a pas abusé de son large pouvoir d'appréciation en retenant un tel mobile à charge du recourant.
3.4.6. Le recourant reproche à la cour cantonale d'avoir pris en compte le fait que seule l'arrestation avait permis de mettre un terme à son activité criminelle, ce qui serait le propre de toute activité de ce genre. En outre, la cour cantonale n'exposerait pas dans quelle mesure elle prend en compte cet élément, quelle est sa pondération et s'il s'agit d'un élément aggravant. Dans tous les cas, ce critère devrait être écarté lors de la fixation de la peine.
L'auteur qui poursuit son activité délictueuse malgré les risques fait preuve d'une volonté criminelle accrue, de sorte que la prise en compte de cet élément dans le cadre de la fixation de la peine par la cour cantonale n'est pas critiquable. Au demeurant, en soulevant un tel argument, le recourant admet lui-même qu'il aurait persisté dans son trafic, à défaut d'arrestation, ce qui ne plaide manifestement pas en sa faveur. Il ressort à l'évidence de l'arrêt entrepris que la cour cantonale a pris en compte cet élément dans un sens aggravant, sans avoir besoin de le pondérer conformément à la jurisprudence précitée (cf. supra consid. 3.1). Mal fondé, le grief doit donc être rejeté.
3.4.7. Le recourant reproche à la cour cantonale d'avoir qualifié sa situation personnelle de neutre dans la fixation de la peine, alors même qu'elle avait renvoyé à l'appréciation des premiers juges sur ce point, qui avaient pris en compte la situation personnelle et financière du recourant. La cour cantonale aurait ainsi omis de considérer qu'une peine privative de liberté ferme de 40 mois aurait un impact inadmissible sur la famille du recourant ainsi que sur ses petits-enfants dont il s'occupe quotidiennement, mais également pour effet de le plonger à nouveau dans le milieu carcéral avec l'effet réflexe de l'immerger dans la criminalité.
Contrairement à ce que soutient le recourant, la cour cantonale n'a pas renvoyé à l'appréciation des premiers juges sur ce point, mais s'y est simplement référée en y ajoutant les déclarations du recourant au cours de l'audience d'appel du 26 novembre 2020 (cf. arrêt attaqué, consid. 4.6 p. 8). En outre, la cour cantonale a pris en compte la situation personnelle du recourant dans l'examen de l'effet de la peine sur son avenir (cf. arrêt entrepris, consid. 4.7 p. 8 s.), critère mentionné à l'<ref-law> comme le rappelle à bon droit la cour cantonale.
Au demeurant, il est inévitable que l'exécution d'une peine ferme d'une certaine durée ait des répercussions sur la vie professionnelle et familiale du condamné. Ces conséquences ne peuvent conduire à une réduction de la peine qu'en cas de circonstances extraordinaires (arrêt 6B_780/2018 et 6B_781/2018 du 9 octobre 2018 consid. 2.1 et les références citées), lesquelles n'ont pas été retenues par la cour cantonale, sans que le recourant ne critique sur ce point le raisonnement suivi par cette autorité. Mal fondé, le grief du recourant doit être rejeté.
3.4.8. Le recourant reproche à la cour cantonale d'avoir mis en cause sa capacité d'introspection et d'avoir retenu sa mauvaise collaboration au cours de la procédure. Or, la cour cantonale n'aurait pas pris en compte le fait que le recourant avait exprimé des regrets et qu'il était sorti de la délinquance depuis sa libération le 13 juin 2016, aucune nouvelle procédure pénale n'étant ouverte contre lui depuis lors. En outre, la cour cantonale ne pouvait prendre en compte sa mauvaise collaboration, sauf à violer le principe du " nemo tenetur ", dans la mesure où le recourant avait le droit de refuser de déposer et de collaborer. L'exercice d'un droit constitutionnel ne pouvait être retenu contre lui pour relativiser sa volonté de s'amender.
Contrairement à ce que soutient le recourant, la cour cantonale s'est prononcée sur les regrets exprimés par le recourant au cours de la procédure, mais les a relativisés dans la mesure où ceux-ci ne portaient que sur le fait d'avoir consommé de la drogue et d'avoir connu les personnes l'accusant (cf. arrêt entrepris, consid. 4.9 p. 9). Le fait que son casier judiciaire soit vierge a lui aussi été pris en compte (cf. arrêt entrepris, consid. 4.8 p. 9). Toutefois, il s'agit là du comportement que l'on est en droit d'attendre de tout un chacun, de sorte que c'est à bon droit que la cour cantonale a qualifié cet élément de neutre.
Enfin, si le recourant est en droit de ne pas s'auto-incriminer (" nemo tenetur se ipsum accusare "), ce que la cour cantonale a d'ailleurs relevé, il n'est pas critiquable de tenir compte de son comportement au cours de la procédure, s'agissant d'un facteur pertinent dans le cadre de la fixation de la peine (cf. supra consid. 3.1).
3.5. Le recourant invoque une violation du principe de célérité dont il faudrait tenir compte dans la fixation de la peine, vu notamment l'écoulement de treize mois entre l'acte d'accusation et le jugement de première instance et l'écoulement de près de six années depuis son arrestation. En outre, il invoque un déni de justice formel, en ce que la cour cantonale ne s'est pas prononcée sur ce moyen pourtant soulevé lors de la plaidoirie orale du 26 novembre 2020.
3.5.1. Les <ref-law> et 29 al. 1 Cst. garantissent notamment à toute personne le droit à ce que sa cause soit traitée dans un délai raisonnable. Ces dispositions consacrent le principe de la célérité et prohibent le retard injustifié à statuer. L'autorité viole cette garantie lorsqu'elle ne rend pas une décision qu'il lui incombe de prendre dans le délai prescrit par la loi ou dans le délai que la nature de l'affaire et les circonstances font apparaître comme raisonnable (<ref-ruling> consid. 1.3.1 p. 377; arrêt 6B_170/2020 du 15 décembre 2020 consid. 1.1). La violation du principe de la célérité peut avoir pour conséquence la diminution de la peine, parfois l'exemption de toute peine ou encore une ordonnance de classement en tant qu'ultima ratio dans les cas les plus extrêmes (<ref-ruling> consid. 1.4.1 p. 377; <ref-ruling> consid. 3.6 p. 26; arrêt 6B_170/2020 du 15 décembre 2020 consid. 1.1).
Pour déterminer les conséquences adéquates de la violation du principe de la célérité, il convient de prendre en considération la gravité de l'atteinte que le retard dans la procédure a causé au prévenu, la gravité des infractions qui sont reprochées, les intérêts des lésés, la complexité du cas et à qui le retard de procédure doit être imputé (<ref-ruling> consid. 1.4.1 p. 377 s.; arrêt 6B_170/2020 du 15 décembre 2020 consid. 1.1).
3.5.2. La cour cantonale n'a pas abordé la question de la violation du principe de la célérité. Déterminer si cette question aurait dû être traitée par la cour cantonale, respectivement si l'absence d'épuisement de l'instance cantonale (<ref-law>) est opposable au recourant sont des points qui peuvent rester ouverts vu ce qui suit.
Le recourant a été arrêté le 14 septembre 2015. L'acte d'accusation a été dressé le 27 décembre 2017. Au cours de cette période, il ressort du dossier cantonal que le ministère public a conduit de nombreux actes d'instruction, dont notamment l'audition de plusieurs personnes impliquées dans le trafic de cocaïne mis en place par le recourant. Une première audience de jugement a été agendée le 29 mai 2018 (cf. pièce 10005; <ref-law>). Par courrier du 9 mai 2018, le défenseur du recourant a requis les résultats du contrôle téléphonique opéré sur les numéros d'appels de son mandant (cf. pièce 10076 s.; <ref-law>). Le tribunal de première instance a ensuite renvoyé l'audience au 19 septembre 2018 (cf. pièce 10091; <ref-law>). Par courrier du 17 septembre 2018, le ministère public informait le président du tribunal de police qu'en raison d'un accident, il était dans l'incapacité d'assister à l'audience prévue le 19 septembre 2018 (cf. pièce 10107; <ref-law>). L'audience de jugement s'est donc tenue le 16 janvier 2019 et le jugement rendu le 28 janvier 2019 (cf. pièces 10166 ss et 10175 s.; <ref-law>). A la suite de l'appel du recourant, la cour cantonale a rendu son premier arrêt le 27 janvier 2020. Puis, le Tribunal fédéral a rendu son arrêt dans la cause 6B_386/2020 le 14 août 2020. L'arrêt attaqué dans le cadre du présent recours a été rendu le 26 novembre 2020.
Selon cette chronologie, il apparaît que les autorités de poursuite pénale cantonales ont fait preuve de diligence afin d'instruire une affaire portant sur un trafic de stupéfiant qui a duré plus de sept ans et qui a notamment impliqué plusieurs personnes. Les deux renvois d'audience par-devant le tribunal de première instance sont dus à une demande légitime du recourant et à un accident du représentant du ministère public, de sorte que ces retards ne peuvent être imputés ni à l'un ni à l'autre. Au demeurant, le recourant n'expose aucunement l'éventuelle gravité de l'atteinte qu'il aurait subie du fait de la longueur de la procédure. Quoi qu'il en soit, les délais entre les différentes étapes procédurales rappelées ci-dessus ne sauraient constituer des retards injustifiés qui feraient passer ceux-là comme déraisonnables, notamment au vu de la nature de l'affaire et de sa complexité. En l'absence de violation du principe de la célérité, la cour cantonale n'a pas abusé de son pouvoir d'appréciation en passant sous silence cet élément. Mal fondé, le grief doit partant être rejeté.
3.6. Au vu de ce qui précède, la cour cantonale a pris en compte les critères pertinents gouvernant la fixation de la peine conformément à l'<ref-law>, sans omettre d'éléments d'appréciation importants, ni en se fondant sur des critères étrangers à cette disposition. Compte tenu de l'ensemble des circonstances, la peine infligée au recourant n'apparaît pas exagérément sévère au point de constituer un abus du large pouvoir d'appréciation dont dispose le juge. Les griefs tirés de la violation de l'<ref-law> doivent être rejetés.
4.
Le recourant invoque une violation des art. 43 et 47 CP en tant que la cour cantonale n'a pas prononcé une peine compatible avec le prononcé du sursis partiel.
4.1. L'<ref-law> prévoit que le juge peut suspendre partiellement l'exécution d'une peine privative de liberté d'un an au moins et de trois ans au plus afin de tenir compte de façon appropriée de la faute de l'auteur.
Lorsque la peine entrant en considération se situe dans un intervalle dont les bornes comprennent la limite supérieure à l'octroi du sursis (24 mois), du sursis partiel (36 mois) ou de la semi-détention (1 an), le juge doit se demander si une peine inférieure à cette limite apparaît encore soutenable et, dans cette hypothèse, la prononcer. Dans le cas inverse, il est libre de prononcer une peine, pour peu qu'elle soit adéquate et justifiable, même si elle n'excède que de peu la limite en cause. Dans tous les cas, le juge doit expressément motiver sa décision sur ce point (<ref-ruling> consid. 3.5 p. 24 s.; arrêts 6B_1024/2020 du 25 janvier 2021 consid. 2.1; 6B_537/2020 du 29 septembre 2020 consid. 1.3; 6B_780/2018 et 6B_781/2018 du 9 octobre 2018 consid. 6.1).
4.2. En l'espèce, la peine infligée au recourant est de 40 mois. Elle dépasse ainsi de quatre mois la durée maximale permettant l'octroi du sursis partiel, de sorte qu'elle ne peut être considérée comme excédant de peu la limite en cause. Par ailleurs, comme vu précédemment (cf. supra consid. 3), la cour cantonale a examiné de manière détaillée les critères pertinents gouvernant la fixation de la peine l'ayant conduite à prononcer une telle sanction à l'encontre du recourant. Celui-ci ne peut ainsi se plaindre d'une violation de son droit d'être entendu à cet égard. Enfin, la cour cantonale a précisé que la peine de 40 mois se situait d'ailleurs au bas de l'échelle des peines entrant en considération, de sorte qu'il en ressort qu'une peine inférieure n'était aux yeux de la cour cantonale pas adéquate. Partant, les griefs tirés de la violation des art. 43 et 47 CP doivent être rejetés.
5.
Vu l'issue du recours, les conclusions en indemnisation au sens de l'<ref-law> pour la procédure d'appel et à l'allocation d'une indemnité équitable pour la procédure devant le Tribunal fédéral sont sans objet.
6.
Au vu de ce qui précède, le recours doit être rejeté, dans la mesure où il est recevable.
Le recourant, qui succombe, doit supporter les frais judiciaires (cf. <ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté, dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué au recourant, au Ministère public de l'Etat de Fribourg et au Tribunal cantonal de l'Etat de Fribourg, Cour d'appel pénal.
Lausanne, le 22 décembre 2021
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
La Présidente : Jacquemoud-Rossari
Le Greffier : Rosselet