My made up data:
structure(list(pillar = c("1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3"), budget = c("red", 
"red", "red", "red", "red", "red", "green", "green", "red", "green", 
"red", "yellow", "red", "red", "yellow", "yellow", "red", "red", 
"yellow", "red", "green", "red", "red", "red", "red", "yellow", 
"red", "red", "red", "red"), schedule = c("red", "green", "red", 
"yellow", "red", "yellow", "yellow", "red", "red", "yellow", 
"yellow", "green", "red", "green", "red", "red", "yellow", "yellow", 
"red", "yellow", "green", "yellow", "red", "green", "yellow", 
"yellow", "green", "green", "green", "red"), scope = c("green", 
"red", "green", "red", "yellow", "green", "green", "green", "red", 
"red", "red", "yellow", "green", "red", "red", "red", "yellow", 
"yellow", "red", "red", "green", "red", "red", "green", "red", 
"red", "red", "green", "green", "red"), risk = c("yellow", "red", 
"green", "yellow", "yellow", "yellow", "green", "green", "green", 
"green", "green", "green", "red", "yellow", "yellow", "yellow", 
"green", "green", "red", "green", "red", "yellow", "yellow", 
"green", "yellow", "yellow", "red", "yellow", "green", "yellow"
), resources = c("red", "green", "green", "green", "yellow", 
"green", "green", "green", "red", "green", "green", "green", 
"green", "yellow", "green", "green", "yellow", "green", "green", 
"green", "red", "green", "green", "red", "green", "green", "red", 
"green", "yellow", "green")), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -30L))
This tidyverse approach first pivots to a longer data frame structure, then counts the occurrences of each color by pillar and variable. The complete step fills in empty combinations, to allow for empty columns in the plot.
library(tidyverse)
df %>%
  pivot_longer(-pillar) %>%
  count(pillar, name, value) %>%
  complete(pillar, name, value, fill = list(n = 0)) %>%
  ggplot(aes(name, n, fill = factor(value, levels = c('green','yellow','red')))) +
  geom_col(position = position_dodge2(0.7, preserve = 'single'), width = 0.6, ) +
  facet_wrap(~ pillar,
             labeller = label_both) +
  scale_fill_manual(values = c('green','yellow','red')) +
  labs(x = '', y = 'Count') +
  theme(legend.position = 'none')

Created on 2023-04-21 with reprex v2.0.2