Is it possible to sort values within stacked bar graphs?

I want to show the highest value in each bar column to be at the top/end, so for the first one “whale, beluga, meat, dried (Alaska Native)” i need Iron(Cyan color) to be at the very end, etc…

Yes there is. You will need to add each row as an individual trace and show the legend only the first time you add a specific category/ color. Use legendgroup to ensure that elements of the same category get selected/ unselected together.

import plotly.express as px
import plotly.graph_objects as go

df = px.data.gapminder()
df = df.loc[df["country"].isin(
      [
         'Germany',
         'United Kingdom',
         'Finland',
         'Belgium',
         'Sweden',
         'Denmark',
         'Austria',
         'Iceland',
         'Netherlands',
         'Switzerland',
         'Ireland',
         'Norway'
      ]
   )
]
df["country_index"] = df.groupby("year")["country"].cumcount()
df = df.sort_values(["year", "gdpPercap"], ignore_index=True)
df["showlegend"] = df.groupby("country")["year"].cumcount() == 0
colors = px.colors.qualitative.Alphabet

fig = go.Figure()
for index, row in df.iterrows():
   fig.add_trace(
      go.Bar(
         y=[row["year"]],
         x=[row["pop"]],
         customdata=[row["gdpPercap"]],
         hovertemplate="%{x:2f}, GDP per capita: %{customdata:2f}",
         marker=dict(color=colors[row["country_index"]]),
         name=row["country"],
         legendgroup=row["country"],
         showlegend=row["showlegend"],
         orientation="h"
      )
   )

fig.update_layout(barmode="stack", hovermode="y unified")